有了 Babel 我们可以兼顾所有最新的 ES2015+ 语言特性，
但也意味着我们需要交付转译和 polyfill 后的包以支持旧
浏览器。这些转译后的包通常都比原生的 ES2015+ 代码会更
冗长，运行更慢。现如今绝大多数现代浏览器都已经支持了原
生的 ES2015，所以因为要支持更老的浏览器而为它们交付笨
重的代码是一种浪费。

Vue CLI 提供了一个“现代模式”帮你解决这个问题。以如下命令为生产环境构建：
vue-cli-service build --modern(npm run build --modern)

Vue CLI 会产生两个应用的版本：一个现代版的包，面向支持 ES modules 的
现代浏览器，另一个旧版的包，面向不支持的旧浏览器。
最酷的是这里没有特殊的部署要求。其生成的 HTML 文件会自动使
用 Phillip Walton 精彩的博文中讨论到的技术：
现代版的包会通过 <script type="module"> 在被支持的浏览器中加载；
它们还会使用 <link rel="modulepreload"> 进行预加载。
旧版的包会通过 <script nomodule> 加载，并会被支持 ES modules 的浏览器忽略
一个针对 Safari 10 中 <script nomodule> 的修复会被自动注入
对于一个 Hello World 应用来说，现代版的包已经小了 16%。在生产环境下，现代
版的包通常都会表现出显著的解析速度和运算速度，从而改善应用的加载性能。

<script type="module"> 需要配合始终开启的 CORS 进行加载。
这意味着你的服务器必须返回诸如 Access-Control-Allow-Origin: * 的有效
的 CORS 头。如果你想要通过认证来获取脚本，可使将 crossorigin (vue.config.js属性)选项设
置为 use-credentials。
同时，现代浏览器使用一段内联脚本来避免 Safari 10 重复加载脚本包，所以如果你
在使用一套严格的 CSP，你需要这样显性地允许内联脚本：
Content-Security-Policy: script-src 'self' 'sha256-4RS22DYeB7U14dra4KcQYxmwt5HkOInieXK1NUMBmQI='(在请求头添加)
